home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Shareware Overload Trio 2
/
Shareware Overload Trio Volume 2 (Chestnut CD-ROM).ISO
/
dir37
/
mxmnu241.zip
/
MARXREAD.ME
< prev
next >
Wrap
Text File
|
1993-01-01
|
18KB
|
718 lines
Version 2.39
06-22-92
Did some serious internal cleanup and I'd like to think everything works
better but if there is anything that doesn't work that used to, let me
know and I'll fix it.
I'm in the process of expanding the marxmenu syntax allowing you to do
things that you couldn't do before. You can now return Arrays as results
from procedures.
Example:
var X
X = Test
Procedure Test
var Z
ReadTextFile ('MARX.BAT',Z)
Return Z
EndProc
I've also improved the Novell menu translator so that it works better
with nasty menus.
07-01-92
Made a modification to be compatible with Software Carousel from Soft
Logic. MarxMenu will now find the master environment under Carousel and
it will read that TaskNumber and create unique batch file names under
each window.
The LockWord feature can now be used with the UseNovPassword feature. If
both are used then either the novell password or the lockword will
unblank the screen. This allows you to create a master password that
only the supervisor knows so that the supervisor can unlock anyones
screen.
07-13-92
MarxMenu can now read and write the CMOS ram and the battery backed up
clock.
CMOS (Number) : Number
CMOS allows to to read and write the CMOS ram on the clock chip.
Example:
Writeln CMOS(16)
CMOS(16) = $42
NovUsedVolumeSpace (Path) : Number
Returns the used volume space of Path.
Example:
Writeln NovUsedVolumeSpace('F:')
ReadSqDirectory (Path,2DArray)
ReadSqDirectory works like ReadDirectory but rather than just returning
the file name it return all the information about the file in a 2
dimensional array. The fields of the array are as follows:
1 - Name
2 - Date last Updated
3 - Size
4 - Attributes
Under Netware there are several other fields:
5 - Date Created
6 - Date last Accessed
7 - Date last Archived
8 - Owner
Example:
Var X Y
ReadSqDirectory('*.EXE',X)
Writeln 'Listing File Name, Date Last Accessed, and Size.'
Loop X
Y = LoopIndex
Writeln X[Y,1] ' ' DateString(X[Y,6]) ' ' X[Y,3]
EndLoop
DiskType (Drive) : String
DiskType returns the type of disk of a drive letter. Types recognized
are:
FLOPPY360
FLOPPY720
FLOPPY12
FLOPPY14
RAMDISK
SUBST
HARDDISK
BERNOULI
NOVELL
UNKNOWN
Example
Writeln DiskType('F')
08-06-92
ReadlnAsc (File,Array)
ReadlnAsc reads a single line from a comma delimited Ascii file and
breaks the fields out into an array. All fields in quotes are considered
strings. If the field is just comma delimited and numeric then it is
converted to a number. If it has a decimal point then it is converted to
a real number.
08-18-92
In addition to the SetEnv and ReadEnv commands, MarxMenu now can address
environment variables as if they were local variables.
Example:
Writeln %PATH%
%PATH% = 'C:\;C:\DOS;'
===============================================================
Version 2.40
09-16-92
Well since I rolled over to 2.4 I decided to do something special a make
a semi-major leap forward. I'm added modem communication features to
MarxMenu. My intention is eventually to use MarxMenu for ny BBS software
instead of TBBS which has been nothing but grief.
So far I have XModem, YModem, ZModem anf Kermit but I'm not done with
them so I'm not going to document them yet.
ComPort : Number
Sets or reads the port that communication commands will effect.
Example:
ComPort = Com1
Writeln ComPort
ComInitPort (Baud,DataBits,Parity,StopBits)
Initializes the ComPort. This must be run first before any other comport
command is executed.
Example:
ComInitPort(38400,8,'N',1)
ComBaud : Number
Reads or sets the baud rate. Range from 110 to 115,000 baud.
Example:
ComBaud = 9600
Writeln ComBaud
ComDataBits : Number
Reads or sets the number of data bits. Range 5 - 8 bits.
Example:
ComDataBits = 8
Writeln ComDataBits
ComStopBits : Number
Reads or sets the number of stop bits. Range 1 - 2 bits.
Example:
ComStopBits = 1
Writeln ComStopBits
ComParity : String
Reads or sets the parity.
N - None
E - Even
O - Odd
M - Mark
S - Space
Example:
ComParity = 'E'
Writleln ComParity
ComDone
UnInitializes the port. Dealocates memory used by ComInitPort and
restores interupt vectors.
ComDTR (On/Off)
Turns DTR (Data Terminal Ready) on or off. Setting DTR to off can be
used to hang up a modem.
Example:
ComDTR Off
ComRTS (On/Off)
Turns RTS (Request to Send) on and off.
Example:
ComRTS On
ComCharReady : Boolean
Tests to see if a character has been received in the input buffer.
Example:
if ComCharReady then Ch = ComReadChar
ComReadChar : String
Reads one character from the com port or input buffer. It will wait up
to ComReadTimeout ticks for the character. If no character is received
then ComTimeOut is set to True.
Example:
Ch = ComReadChar
ComReadln : String
Reads a line from the com port or input buffer. It will wait up to
ComReadTimeout ticks for the character. If no character is received then
ComTimeOut is set to True.
Example:
if ComReadln = 'OK' then
ComWrite (String)
Writes a string to the com port with no CR.
Example:
ComWrite '+++'
ComWriteln (String)
Writes a string to the com port with CR.
Example:
ComWriteln 'ATTD 1-417-866-1665'
ComTimeout : Boolean
ComTimeout is set to True if the last command ended in a timeout error.
Example:
if ComTimeout then Writeln 'Something is stuck!'
ComReadTimeout : Number
This variable controls the number of timer ticks (18.2 ticks per second)
that a read command will wait to receive data.
Example:
ComReadTimeout = 36 ;2 seconds
ComWriteTimeout : Number
This variable controls the number of timer ticks (18.2 ticks per second)
that a write command will wait to send data.
Example:
ComWriteTimeout = 36 ;2 seconds
09-28-92
NovShellVersion : String
Returns the Novell shell version number.
10-19-92
Added new syntax option to the Mid string function allowing you to write
to the middle of a string. See the MID function.
10-26-92
Added a new internation command.
CurrencySymbol : String
Returns the currency symbol based on the country code.
11-09-92
ComCD : Boolean
Returns the status of the carrier detect line on serial ports.
ComRI : Boolean
Returns the status of the ring indicator line on serial ports.
ComBreakReceived : Boolean
Returns True if a break signal has been received at the serial port.
ComSendBreak
Sends a break signal out the modem.
NovBinderyAccess : Number
NovBinderyAccess returns the users bindery access level.
0 - Not logged in.
1 - Logged in.
2 - Object Access.
3 - Supervisor Access.
WorkString : String
WorkString is a MarxMenu variable that contains the string that Readln
is editing. This string can be accessed by KeyEvent routines so that a
KeyEvent procedure can set what is being entered.
Example:
WorkString = PickOne(List)
11-13-92
I changed the syntax on KeyEvent so if you got MarxMenu in the last 4
days and now you get an error on KeyEvent, make a few simple changes.
KeyEvent (Key) : Procedure
KeyEvent allows you to assign a procedure to a key so that any time the
key is pressed the procedure is called. Setting a key to Nil clears the
key. This command can be used to create global OnKey.
Example:
KeyEvent(F1) = loc ShowHelp ;runs ShowHelp when F1 is pressed
KeyEvent(F1) = Nil ;clears F1 key
Run KeyEvent(F1) ;executes procedure assigned to F1
11-16-92
ComReceiveXmodem (FileName)
Receive a file by Xmodem protocol.
Example:
ComRecieveXmodem 'MXMENU.ZIP'
ComSendXmodem (FileName)
Send a file by Xmodem protocol.
Example:
ComSendXmodem 'MXMENU.ZIP'
ComReceive1kXmodem (FileName)
Receive a file by 1k Xmodem protocol.
Example:
ComRecieve1kXmodem 'MXMENU.ZIP'
ComSend1kXmodem (FileName)
Send a file by 1k Xmodem protocol.
Example:
ComSend1kXmodem 'MXMENU.ZIP'
ComReceiveYmodem
Receive files by Ymodem protocol.
Example:
ComRecieveYmodem
ComSendYmodem (FileName or Array)
Send files by Ymodem protocol. If you pass a file name then it sends
that file. If you pass it an array then it will send all the files in
that array.
Example:
ComSendYmodem 'MXMENU.ZIP'
Example:
AppendArray(FileList,'FILE1')
AppendArray(FileList,'FILE2')
ComSendYmodem FileList
ComReceiveYmodemG
Receive files by YmodemG protocol.
Example:
ComRecieveYmodemG
ComSendYmodemG (FileName or Array)
Send files by YmodemG protocol. If you pass a file name then it sends
that file. If you pass it an array then it will send all the files in
that array.
Example:
ComSendYmodemG 'MXMENU.ZIP'
Example:
AppendArray(FileList,'FILE1')
AppendArray(FileList,'FILE2')
ComSendYmodemG FileList
ComReceiveZmodem
Receive files by Zmodem protocol.
Example:
ComRecieveZmodem
ComSendZmodem (FileName or Array)
Send files by Zmodem protocol. If you pass a file name then it sends
that file. If you pass it an array then it will send all the files in
that array.
Example:
ComSendZmodem 'MXMENU.ZIP'
Example:
AppendArray(FileList,'FILE1')
AppendArray(FileList,'FILE2')
ComSendZmodem FileList
ComReceiveKermit
Receive files by Kermit protocol.
Example:
ComRecieveKermit
ComSendKermit (FileName or Array)
Send files by Kermit protocol. If you pass a file name then it sends
that file. If you pass it an array then it will send all the files in
that array.
Example:
ComSendKermit 'MXMENU.ZIP'
Example:
AppendArray(FileList,'FILE1')
AppendArray(FileList,'FILE2')
ComSendKermit FileList
ComXmitAbortProgram
ComXmitAbortProgram is called while uploads and downloads are in
progress. If this is set to a MarxMenu procedure then you can write your
own control routine to control protocol abort. Your program needs to
return either a True to abort or a False to not abort.
Example:
ComXmitAbortProgram = loc XmitAbort
Procedure XmitAbort
if not KbdReady then Return False
Return ReadKey = Esc
EndProc
ComXmitStatusProgram
ComXmitStatusProgram is called while uploads and downloads are in
progress. If this is set to a MarxMenu procedure then you can write your
own status display routine to show progress status.
ComXmitStarting : Boolean
This variable is set to True to indicate the beginning for an upload or
download. It is used to start a communications status window.
ComXmitEnding : Boolean
This variable is set to True to indicate the endin for an upload or
download. It is used to end a communications status window.
ComBytesRemaining : Number
During an upload or download ComBytesRemaining returns the number of
bytes that is yet to be transferred.
ComBytesTransferred : Number
During an upload or download ComBytesTransferred returns the number of
bytes that has been transferred.
ComBlockSize : Number
During an upload or download ComBlockSize returns the number of bytes in
the block that's being transferred.
ComBlockNum : Number
During an upload or download ComBlockNum returns the current block
number.
ComBlockErrors : Number
During an upload or download ComBlockErrors returns the number of
errors that occurred during the current block.
ComTotalErrors : Number
During an upload or download ComTotalErrors returns the number of
errors that occurred during the current file transfer.
ComFileName : String
During an upload or download ComFileName returns the name of the file
being transferred.
ComFileSize : Number
During an upload or download ComFileSize returns the size of the file
being transferred.
ComProtocol : String
During an upload or download ComProtocol returns the name of the
transfer protocol being used.
11-17-92
Made another change to KeyEvent. KeyEvents are attached to the current
window. New windows inherit the KeyEvents from their parent window. But
if you create a new KeyEvent in a window and then erase that window the
new KeyEvent is erased and the KeyEvents of the parent window are
restored. You can have completely different KeyEvents for each window
and those events become active whenever the window becomes active.
===============================================================
Version 2.41
12-07-92
I bumped up the version number since MarxMenu is now compiled with
Borland Pascal 7.0 and I got new updated libraries.
12-14-92
Working on rewriting my BBS in MarxMenu so am finding out if these
communication commands I put in here actually work.
ComLastChar : String
ComLastChar returns the last character that was received with
ComReadChar.
ComLastLine : String
ComLastLine returns the last line that was recieved that is not a blank
line. BackSpace characters are handled correctly.
ComEchoRecChar : Boolean
When ComEchoRecChar is set to true then characters received are echoed
back to the sender. This option is useful when writing a host
communication program. The echoed character it intelegently processed.
ComEchoSendChar : Boolean
When ComEchoSendChar is set to true then characters sent are echoed
to the local screen. This option is useful when writing a host
communication program. The echoed character it intelegently processed.
ComWatchCD : Boolean
When ComWatchCD is set to true MarxMenu watches the carrier detect
signal. If carrier detect is lost then several things happen. ComCDAbort
is set to true. ComEchoSendChar and ComEchoRecChar are set to false.
ComWrite and ComWriteln are disabled. ComCharReady is always true and
ComReadChar returns a char 0 when read.
This function is there to reset a host program without having to build
in a lot of error checking into the MarxMenu script. Setting ComWatchCD
to false resets everything and allows you to prepare for the next call.
Only set ComWatchCD to true after you receive a carrier detect signal.
It is also recommended that you insert a half second delay after
receiving a connect to deal with slow modems in fast computers.
ComCDAbort : Boolean
ComCDAbort is set to True if ComWatchCD is on and the carrier is lost.
This is used as a signal to indicate that the modem has lost connection
and the host program should reset and prepare for the next call.
ComDrainSendBuffer
ComDrainSendBuffer waits till all the characters in the send buffer go
to the modem. This allows the other end to get the last of the goodbye
message without being cut off by a hangup. With buffered modems you
should wait a few seconds after this command before hanging up the modem
to ensure that all the data has been transferred.
ComEmptySendBuffer
ComEmptySendBuffer trashes all the data in the send buffer that hasn't
been transferred. This allows you to create a hot key effect and makes
host programs act more responsive.
ComEmptyRecBuffer
ComEmptyRecBuffer trashes the data in the receive buffer. This allows
you to get rid of incoming trash data.
12-28-92
ComThisLine : String
ComThisLine returns a string of characters that has been received from
the com port since the last CR. This can be used to see what prompts are
being received for automatic script processing.
Example:
if pos('Password',ComThisLine) > 0
ComWriteln 'Beast'
endif
ComErrorLimit : Number
ComErrorLimit is the maximum number of errors that a file transfer can
have before an automatic transfer abort occurs. If set to 0 then it will
keep trying forever. The default limit is 100.
ComUseInt14
ComUseInt14 sets MarxMenu to talk to the ports through the Int14 serial
port routines. This can be used for network modem sharing applications
or if for some reason you don't want to talk to the UART directly. The
default Int14 routines are unbuffered.
Because of the limitations of the Int14 routines many of the more
advance MarxMenu communications commands do nothing when this option is
activated.
ComUseUart
ComUseUart sets MarxMenu to talk to the UART directly. This is the
default mode. This command can be used to switch back if you used the
ComUseInt14 command.
SetTimerTask (Loc Procedure,Ticks)
SetTimerTask allows for background multitasking or real time events. The
Ticks parameter specifies the how often the task will run in clock ticks
(18.2 times a second). If 6 ticks are specified then the task will run
every 4 clock ticks or about 3 times a second. This command can be used
to run scheduled events as well as periodic events.
Example:
Within (Start,End) : Boolean
Within returns True if a value is within the range from Start to End.
Within works with numbers and strings.
Example:
if X within(5,7) then Write 'X is Within 5 to 7'
if not (Ch within('A','Z')) Write 'Lower Case'
WritelnAsc (File,Array)
WritelnAsc writes 1 line to the end of a comma delimited ascii text
file. Each element of the array becomes one field of that line.
Example:
var A
A[1] = 'MARC PERKEL'
A[2] = 'ONION'
A[3] = 37
WritelnAsc('TEST.TXT',A)
;appends "MARC PERKEL","ONION",37 to file TEST.TXT
WriteAscTextFile (File,2DArray)
WriteAscTextFile writes a two dimensional array to a comma delimited
ascii text file.
12-29-92
ComHWFlowControl (On/Off)
ComHWFlowControl is used for hardware flow control for modems. The
allows you to talk to the modem at a faster speed than the modem can
transmit over the lines. The default is on.